Various scheduling algorithm implementations differ in adherence to processor affinity. Under some circumstances, an implementation can allow a task to change execution to a different processor if deemed to be most efficient. An example situation can involve two processor-intensive tasks, task A and task B, which have affinity to one processor while another processor is idle. Some scheduling algorithms shift task B to the second processor to maximize processor use. Task B accordingly acquires affinity with the second processor while task A continues to have affinity with the first processor.